home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / VELENA17.ZIP / CONNECT4.DOC next >
Text File  |  1997-05-28  |  30KB  |  716 lines

  1.  
  2.  
  3.                               -+- Velena -+-
  4.  
  5.          A Connect Four Expert System which Plays the Game Perfectly
  6.          ===========================================================
  7.  
  8.  
  9.  
  10.                                  Abstract
  11.                                  ========
  12.  
  13. Velena is a Shannon-C type strategy program written to play Connect Four.
  14. It's based on a knowledged approach that uses eight mathematical rules to
  15. take its decisions. Since the rules are proven to be correct, the conclusions
  16. made by the program are also correct. In this way it has been possible to
  17. show that Connect Four is a first player win and Velena is always able to
  18. win when she plays first.
  19.  
  20. ===============================================================================
  21.  
  22.  
  23. 1. Program overview
  24. ===================
  25.  
  26.     1.1. System Requirements
  27.     ========================
  28.  
  29.     To run Velena, you will need the following system:
  30.  
  31.     * An IBM compatible, 386 or better computer (486/DX2 suggested)
  32.     * Four megabytes of RAM.
  33.     * A SVGA VESA-compatible graphic adapter.
  34.     * MS-DOS 5.0 (or better) or compatible operating system.
  35.  
  36.  
  37.     1.2. Freeware agreement
  38.     =======================
  39.  
  40.     This program is to be considered freeware, which means that you can use
  41.     and distribute it to anyone you want, provided no fee is charged except
  42.     for media support.
  43.     You should also not disassemble modify or reverse engineer the program
  44.     for any reason in any circumstance.
  45.     The program is offered as is without warrants of any kind, even if the
  46.     best efforts have been made to produce a functional and efficient product.
  47.     I should not be liable for any damage caused by the use or misuse of
  48.     this program. Running the program is entirely at user's risk.
  49.  
  50.     Even if a fee is not required, I will be glad to receive a postcard from
  51.     your hometown with your comments and suggestion about my program.
  52.  
  53.  
  54.                                              The author current address is:
  55.  
  56.                                              Giuliano Bertoletti
  57.                                              Via Bocchialini n.6
  58.                                              Cap. 43100, Parma. Italy
  59.  
  60.                                              E-Mail:  gbe@ce.unipr.it
  61.                                              Fidonet: 2:332/801.6
  62.  
  63.  
  64.  
  65.     1.3. Greetings
  66.     ==============
  67.  
  68.     This program is based on the knowledged approach of L.Victor Allis
  69.     which designed and implmented a sophisticated AI engine in a program
  70.     called Victor.
  71.     Velena is basically the same, except that even newer concepts and
  72.     techinques were introduced in order to reduce the problem complexity
  73.     (of solving the game) to a more tractable factor of magnitude.
  74.     Moreover Velena is available to anyone, while Victor (currently) is not.
  75.     I thank L.Victor Allis for his support while I developed Velena
  76.     and for the theory he made for solving Connect Four.
  77.     Without him this program wouldn't have come to light.
  78.  
  79.     I also thank Filippo Ghilardi who helped me to build the opening book
  80.     data base which took several days of work on his Pentium 133 computer,
  81.     and Davide Mazza who created the Velena intro logo.
  82.  
  83.  
  84.     1.4. Third party material
  85.     =========================
  86.  
  87.     Sci-Tech freeware VESA graphics library has been used to build the low
  88.     level graphics interface.
  89.  
  90.     PMODE/W Dos Extender by Charles Scheffold and Thomas Pytel has been used
  91.     in substitution of DOS4GW in order to create a more compact executable.
  92.  
  93.     A modified version of Gif Library by Gershon Elber (adapted to 32 bit
  94.     compilers) has been used to handle GIF files.
  95.  
  96.  
  97.  
  98. 2. Introduction into Connect Four
  99. =================================
  100.  
  101. Now I'll describe the rules of the game as well as some nomenclature used
  102. throughout this manual and some basic connect four strategy.
  103.  
  104.  
  105.     2.1. Game Rules
  106.     ===============
  107.  
  108.     Connect Four is a two players game which takes place on a 7x6
  109.     rectangular board placed vertically between them. One player has
  110.     21 yellow men and the other 21 red men. Each player can drop
  111.     a man at the top of the board in one of the seven columns; the
  112.     man falls down and fills the lower unoccupied square. Of course
  113.     a player cannot drop a man in a certain column if it's already
  114.     full (i.e. it already contains six men).
  115.  
  116.     Even if there's no rule about which color should play first, in order
  117.     to avoid confusion we will assume that men are either white or black
  118.     (instead of yellow and red) and that white, as in chess, always plays
  119.     first.
  120.  
  121.     Note however that Velena displays men in yellow and red even if here are
  122.     refered as white and black respectively. Therefore when playing with
  123.     Velena, yellow always begins first.
  124.  
  125.     The object of the game is to connect four men vertically, horizzontally
  126.     or diagonally. If the board is filled and no one has alligned four men
  127.     then the game is drawn (that is after 42 moves if no one wins).
  128.  
  129.     Here's an example of a game won by white (O) and black (X) in fig.1 and
  130.     fig.2 respectively. A possible draw is represented in fig.3
  131.  
  132.  
  133.          .......                  .......                  OOOXOOO
  134.          .......                  .......                  XXXOXXX
  135.          .......                  .XO....                  OOOXOOO
  136.          ...X...                  .XXO...                  XXXOXXX
  137.          ...X...                  .OOX...                  OOOXOOO
  138.          XOOOO..                  .OXOX..                  XXXOXXX
  139.  
  140.           Fig.1                    Fig.2                    Fig.3
  141.       White (O) wins           Black (X) wins          The Game is drawn
  142.  
  143.  
  144.     2.2. Nomenclature
  145.     =================
  146.  
  147.     Since we need a way for representing a sequence of moves instead of a
  148.     position, I will use the same nomenclature as the one used for chess.
  149.     This means that columns are named from A to G, starting from left, and
  150.     rows are numbered from 1 to 6 starting from the bottom.
  151.     In this way we could represent each square of the board with a pair
  152.     letter-number. For example the square in the middle of the lowest row
  153.     is d1. The square above is d2 and the square on the left of d1 is c1.
  154.     (see fig. 3)
  155.  
  156.                               6 . . . . . . .
  157.                               5 . . . . . . .
  158.                               4 . . . . . . .
  159.                               3 . . . . . . .
  160.                               2 . . . . . . .
  161.                               1 . . . . . . .
  162.                                 A B C D E F G
  163.  
  164.                                    Fig. 3
  165.  
  166.  
  167.     In this way we could write down a game as a sequence of moves.
  168.     For example the endgame of fig.1 could have arisen from the following
  169.     sequence of moves:
  170.  
  171.         1) d1,d2
  172.         2) c1,d3
  173.         3) b1,a1
  174.         4) e1++
  175.  
  176.     where ++ indicates the player who did that move won the game (as in
  177.     chess).
  178.  
  179.  
  180.     2.3. Game Strategy
  181.     ==================
  182.  
  183.     There are two kinds of strategies in connect four. The first consist in
  184.     looking ahead few moves to avoid the opponent to win and in the same time
  185.     trying to connect four men. The other is looking for a win in the long run.
  186.  
  187.     Virtually all the algorithms I have seen tend to implement the first
  188.     strategy with some variants of alpha beta search and the most
  189.     sophisticated ones with tree branch pruning. These strategies assure more
  190.     or less the unvulnerability in the short run, but they are doomed to fail
  191.     in the long run because they cannot see beyond the horizzon of few plies.
  192.  
  193.     Most of the games ends between 35th and 42nd move when you (or the
  194.     opponent) are forced to make a particular move since there's only one
  195.     column available. In this circumstance most of the people believe that
  196.     the winner is lucky (if there's one). That's not it. An expert player
  197.     is able to make this happen much time before. Actually this is what
  198.     Velena does.
  199.  
  200.     The first step consist in noting that after white has moved, an odd number
  201.     of free squares remains on the board. Similary after black has moved an
  202.     even number of free square remains. When there's only one column available
  203.     it's clear that the last square will be occupied by black (if no one wins
  204.     first).
  205.  
  206.     Now let introduce some definitions before continuing:
  207.  
  208.     -----------------------------------------------------------------------
  209.  
  210.     ODD SQUARE: it's a square belonging to an odd row. For example d1,c1,c3,
  211.     f5 are all odd squares.
  212.  
  213.     EVEN SQUARE: same as above except that the row is even. For example a2,
  214.     b4,c6,e2 are all even squares.
  215.  
  216.     GROUP: it's a set of four squares connected horizzontally, vertically
  217.     or diagonally. The first player who fills a group with his men, wins.
  218.  
  219.     THREAT: it's a group filled with three men of the same color which has
  220.     the fourth square empty, and also the square below the empty square is
  221.     empty.
  222.  
  223.     ODD THREAT: it's a therat in a group whose empty square is odd.
  224.  
  225.     EVEN THREAT: same as above but the empty square is even.
  226.  
  227.     DOUBLE THREAT: they are two groups which share an empty odd square;
  228.     each group is filled with only two men (of the same color) and the
  229.     other two squares (one for each group) are empty and are one above
  230.     the other. The square below the shared square must be empty too.
  231.  
  232.     -----------------------------------------------------------------------
  233.  
  234.     It's then clear that if white has an odd threat and black cannot connect
  235.     four men anywhere, the game will be eventually won by white.
  236.  
  237.     Please note that this is a sufficient condition and if black can connect
  238.     four men somewhere, further knowledge is required.
  239.  
  240.     Similary if black has an even threat and white cannot connect four men the
  241.     game will be eventually won by black.
  242.  
  243.     It's clear that in both cases we assume that players make the best move
  244.     available.
  245.  
  246.     Things get more complex when both players have at least one group in
  247.     which they can connect four men. In this case we need further
  248.     investigation.
  249.  
  250.     If white has an odd threat and black has an even threat and the columns
  251.     in which the threats are (i.e. the empty square) are different then
  252.     white can still win. Of course no player must be able to connect four men
  253.     except in the group in which he has the odd/even threat stated above.
  254.  
  255.     But if columns are the same then the lower threat (i.e. the lower
  256.     empty square) wins.
  257.  
  258.     If both players have an odd threat the game will be drawn. Unless one
  259.     of them can connect four men elsewhere.
  260.  
  261.     Then the strategy for white is to try to obtain an odd threat and for
  262.     black an even threat. This is not always sufficient as the restrictions
  263.     above shows but it's a good starting point to play connect four,
  264.     especially when both players are humans.
  265.  
  266.  
  267.     2.4. The Way Velena Plays
  268.     =========================
  269.  
  270.     When set to her strongest level, Velena uses two different strategies
  271.     according she's playing white or black. In both cases she uses a database
  272.     for the opening lines. The database is made in such a way that Velena is
  273.     always able to reach a position in which she has an odd threat when she
  274.     plays white (and from there she's able to continue and win by herself).
  275.     She tries to follow the longest winning line for white when she plays with
  276.     black. The built in evaluation function which examines the positions is
  277.     then sufficient to play the middle and end game. However, further search
  278.     is done just to check for trivial wins few moves ahed.
  279.  
  280.  
  281.     2.5. Drawbacks of the algorithm
  282.     ===============================
  283.  
  284.     Connect Four is not complex like chess. Therefore moves tends to repeat
  285.     many times. For example the winning line for white is very narrow, so
  286.     narrow that the first seven moves for white are forced.
  287.     This is the reason why Velena is forced to answer almost always in the
  288.     same way, given the same position on the board. There are not many
  289.     variants.
  290.  
  291.     It's not strange that a player who keeps white men and learns how to
  292.     win a game, is then always able to win each time he plays. This because
  293.     he can play the same game each time.
  294.  
  295.     Another drawback is that Velena pays very poor attention to distinguish
  296.     between a win for black and a draw. They are almost the same thing for her.
  297.  
  298.     Also note that Velena does the best move (when playing with white) only
  299.     when she starts from the empty board. If someone sets up a position and
  300.     then tells the computer to continue the game from that point, it's not
  301.     warranted that the computer plays at best.
  302.  
  303.     Finally the algorithm tend to resign when a game is compromised and
  304.     doesn't fight until the end.
  305.  
  306.  
  307. 3. Running Velena
  308. =================
  309.  
  310. After you have installed Velena on your hard disk, you can start the program
  311. simply typing "connect4" at the dos prompt. As already indicated in section
  312. 1.1, the program needs among the other things a SVGA VESA compatible card.
  313. Many cards can be made VESA compatible simply with a device driver that is
  314. in most of the cases provided with the graphic adapter itself. If you have
  315. any problem, look in your card manual. Besides there are also many freeware
  316. device drivers which can make your graphic adapter become VESA compatible.
  317.  
  318. After a few seconds the computer will display the logo and then the board.
  319. Velena is ready to play.
  320.  
  321. The program is entirely mouse driven and the commands are available as
  322. click-able gadgets in the top of the screen.
  323.  
  324.     3.1. The Control Panel
  325.     ======================
  326.  
  327.     As you surely already noticed, Connect Four is very simple to understand
  328.     and doesn't require too many operations to control the game options.
  329.     The buttons in the top of the screen can drive the program with basic
  330.     commands. Let's see their meaning:
  331.  
  332.  
  333.       - New Game
  334.  
  335.         When you want to begin a new game, click this button and then
  336.         confirm the option by answering YES. If you make a mistake or
  337.         you change your mind you can answer NO and the command will
  338.         be ignored.
  339.  
  340.  
  341.       - Options
  342.  
  343.         When you want to set up a match between a player and the computer
  344.         or two players, or an autoplay, click this button.
  345.         You can also choose the computer level this way. By default red
  346.         side is kept by Velena and yellow side (which begins first) is kept
  347.         by the player. The default computer level is "strong".
  348.  
  349.         If you are unable to win (which is most likely), you can lower the
  350.         level to "normal" or "weak".
  351.  
  352.  
  353.       - Hint
  354.  
  355.         If you need a hint click this button and the computer will move
  356.         for you.
  357.  
  358.  
  359.       - Take Back
  360.  
  361.         This is probably the most used option. If you make a mistake and
  362.         you want to undo the move made, just click this button.
  363.         Note that when a two players game is set, only the last move is
  364.         taken back. But when you play against the computer, moves are
  365.         taken back two at time because you can take back only after the
  366.         computer has made it's move.
  367.         You can also take back more than one move by clicking repeatedly
  368.         this button.
  369.  
  370.  
  371.       - About
  372.  
  373.         Shows the program current version with other informations about
  374.         the author and greetings.
  375.  
  376.  
  377.       - Quit
  378.  
  379.         When you finished to play with Velena you can click this button
  380.         and confirm you really want to quit.
  381.  
  382.  
  383.     3.2. Other commands
  384.     ===================
  385.  
  386.     Moves are made by pointing the square in which the player in turn
  387.     wants to play. You can also move with the keyboard by pressing keys
  388.     1..7, where 1 is the leftmost column and 7 the rightmost.
  389.  
  390.     F1 key can be used to flip colors on the screen (although men are always
  391.     referenced as black and white).
  392.  
  393.     A file named CONNECT4.LOG is always updated on disk each time a game is
  394.     over and keeps track of all the games played.
  395.  
  396.  
  397.     3.3. Advanced options
  398.     =====================
  399.  
  400.     With the right mouse button you can access a pull down menu with some
  401.     advanced features. Here a brief description of what they mean:
  402.  
  403.  
  404.        - Flash last move:
  405.  
  406.        It can be use to replay the last move made. The last man flashes for
  407.        few seconds to let you understand for example where the computer moved.
  408.  
  409.  
  410.        - Show moves list:
  411.  
  412.        Shows the moves so far in the chess notation described above.
  413.        It also shows the moves in a column-wise manner which denotes only
  414.        the column in which a player moved.
  415.  
  416.  
  417.        - Position analysis
  418.  
  419.        Analyzes the current position on the board (for the side which is NOT
  420.        in turn to move) and tells which is the theorical result that can be
  421.        achieved if that player plays at best. Please note that only sufficient
  422.        conditions are used for the analysis. This means that if the computer
  423.        tells a game can be won, this is true, but if the computer says nothing
  424.        this doesn't mean that a game can't be won. In other words it proceeds
  425.        by sufficient conditions, not necessary.
  426.  
  427.  
  428.        - Oracle analysis
  429.  
  430.        This is probably the most difficult feature to explain. It gives a
  431.        detailed report of the oracle status (which is one of the three engines
  432.        which drive Velena, and besides the most important one).
  433.        Since rules definitions and applications are difficult to understand,
  434.        I suggest you to refer to L.V.Allis thesis "A knowledge based approach
  435.        of Connect Four" to know more. Once you red and understood that thesis
  436.        you'll be able to understand the report Velena gives with this option.
  437.        Refer to paragraph 4.8 for further informations.
  438.        Please note that also the oracle proceeds by sufficient conditions;
  439.        there are some positions where the game result is clear and the oracle
  440.        seems not to foresee it.
  441.  
  442.  
  443.        - Reset counters
  444.  
  445.        Resets the two counters which keep players score (shown at the top
  446.        of the board).
  447.  
  448.  
  449.        - Change colors
  450.  
  451.        It simply changes the palette, swapping the three main colors
  452.        components. This leads to a total of six different combinations.
  453.  
  454.  
  455.        - Repaint Desktop
  456.  
  457.        It's useful when you run Velena on a multitasking operating system
  458.        and you switch back and forth from task to task. Since the display
  459.        may become corrupted, using this option should solve the problem.
  460.  
  461.  
  462.        - Save moves list
  463.  
  464.        Writes to disk an ascii file with the moves made. The file name is
  465.        choosen automatically.
  466.  
  467.  
  468.        - Save screen to disk
  469.  
  470.        Writes an image in GIF format with the current position on the board.
  471.        The GIF can be in two colors or in 256 colors according to your needs.
  472.        The 256 color GIF is the current Velena screen, while the 2 colors
  473.        screen is simply a diagram which is pretty useful if you want to print
  474.        it.
  475.  
  476.  
  477.  
  478. 4. Why Velena is so special
  479. ===========================
  480.  
  481. As already said before, Velena is an expert system able to play the game
  482. perfectly. This means that if the program is set to it's maximum level of
  483. strength she always wins when she plays first and she is almost impossible
  484. to beat when she plays second (until you make a few games and you will
  485. learn how to beat her by the program herself).
  486.  
  487. Of course if you are a beginner you can set a lower difficulty level for the
  488. computer. This is useful if you are interested in learning how to play.
  489.  
  490.  
  491.     4.1. Game complexity
  492.     ====================
  493.  
  494.     Although at first sight Connect Four doesn't seem a very complex game
  495.     in terms of combinations of moves and the number of reachable different
  496.     positions on the board, it should be noticed that it's not a so trivial
  497.     game as it looks. Let's see some mathematics behind it.
  498.  
  499.     First we can make a raw estimation of game complexity noting that since
  500.     each square can be empty or occupied by either white or black, each
  501.     square can be in only three different states, leading a total game
  502.     complexity of 3^42 which is in the order of 10^20. Of course this is an
  503.     upper bound which takes in count also the illegal positions.
  504.  
  505.     It is possible to make some finer estimations that reduces the number of
  506.     legal positions, anyway even the finest estimation gives us an order
  507.     of magnitude of 7.1 x 10^13, which is still to high for a complete
  508.     enumeration. To build up a brute force attack several terabytes of disk
  509.     space would be required, and current technology is far away from this
  510.     possibility. Besides the space requirements, also the time requirements
  511.     would be out of what are called "reasonable resources". Finally it would
  512.     be almost impossible to distribute the program.
  513.  
  514.  
  515.     4.2. So Velena is not a brute force attack against Connect Four?
  516.     ================================================================
  517.  
  518.     Definitly not. Velena is an intelligent program which is able to
  519.     predict the final result of a game using complex mathematics, and
  520.     efficient search strategies. The program is compact and strong;
  521.     only a tiny opening book of about 60.000 positions is used for the
  522.     opening lines. All the rest is calculated on fly.
  523.  
  524.  
  525.     4.3. So why should I use Velena if it's unbeatible?
  526.     ===================================================
  527.  
  528.     Well, there are several reasons why this program can be useful.
  529.     First it represents the final word on Connect 4 (or so I hope):
  530.     no program or living man can outperform Velena.
  531.  
  532.     Besides, Velena is very useful to train yourself against a human
  533.     player. If you want to become a strong player then you should train
  534.     yourself with a strong player. And Velena is the strongest.
  535.  
  536.  
  537.     4.4. But is Velena really so perfect?
  538.     =====================================
  539.  
  540.     Well, it's perfect in the sense that she's always able to win if she
  541.     plays first. This because it can be mathematically shown that Connect
  542.     Four can be won by the player which plays first (if it plays well) no
  543.     matter how good the opponent is.
  544.  
  545.     Of course if Velena plays second, there's still a chance for the human
  546.     player to defeat her. Once you learned how, you can easiliy win.
  547.     More over the purpose of the computer in this case (when playing second)
  548.     is not to win, but to avoid losing, if possible. In other words Velena
  549.     considers a draw a good result if it plays with red men.
  550.  
  551.  
  552.     4.5. So Velena destroyed Connect Four?
  553.     ======================================
  554.  
  555.     Yes, but humans are humans and machines are machines. Connect Four is
  556.     still interesting if played between two men. Of course there are no
  557.     chances between a man and a computer, like there are no chances between
  558.     a man and a car. The latter will run always faster.
  559.  
  560.  
  561.     4.6. Why does Velena play almost always the same game when she's
  562.     in autoplay?
  563.     =================================================================
  564.  
  565.     Connect four is not like chess. Even if the game is not as trivial
  566.     as tic tac toe, the complexity is much smaller than chess. This of
  567.     course leads to a limited number of variants and often the moves are
  568.     forced. For example there's only one winning way for white and the
  569.     first seven moves are forced for him. If he choses another move, black
  570.     can draw. Similary black has only one strong defensive line (which of
  571.     course fails in the long run) which can protect him from a premature
  572.     loss. It's clear that once you learn how to infiltrate in this line,
  573.     you are likely to win each time against black.
  574.  
  575.  
  576.     4.7. Isn't Velena too slow in replying?
  577.     =======================================
  578.  
  579.     It depends on which machine she runs. Theorically it can run on a 386
  580.     based processor, but she surely will take a lot of time. At least a
  581.     486DX2 is required to play at decent speed.
  582.     Anyway the algorithm behind is very complex, and no time is wasted in
  583.     useless delays. Velena needs all the resources she uses. Believe me!
  584.  
  585.  
  586.     4.8. Where can I find the complete description of the algorithms used here?
  587.     ===========================================================================
  588.  
  589.     You can try:
  590.  
  591.     ftp://ftp.cs.vu.nl/~victor/connect4.zip
  592.     ftp://ftp.cs.vu.nl/~victor/thesis.zip
  593.  
  594.     this is the documentation made available by L.Victor Allis and surely
  595.     it's very interesting. Of course I am not sure that it will be there
  596.     forever. Please contact victor@cs.vu.nl for more informations.
  597.  
  598.     Keep also in mind that this program is based on his theory but it does
  599.     not follow it completely. For example the mathematical rules have been
  600.     reduced from nine to eight.
  601.  
  602.     You can also refer to Velena Home Page at:
  603.     http://www.ce.unipr.it/~gbe/velena.html
  604.  
  605.  
  606.     4.9. Where can I get the last version of Velena
  607.     ===============================================
  608.  
  609.     Check out Velena's Home Page at:
  610.  
  611.     http://www.ce.unipr.it/~gbe/velena.html
  612.     or use a net serach engine.
  613.  
  614.  
  615.     4.10. Is the source code of Velena available to the public?
  616.     ===========================================================
  617.  
  618.     No, at the moment it's not. Maybe one day it will.
  619.  
  620.  
  621.     4.11. Who's F.Alinovi and why did he say: "...who wants to make four?"
  622.     ======================================================================
  623.  
  624.     He's a friend. After I bored him telling the inner workings of
  625.     Velena and the clever idea behind the algorithm he answered that way.
  626.     He also added that I was losing my time. Poor little fellow! :))))
  627.  
  628.  
  629.     4.12. What's "a Shannon-C type program" mean?
  630.     =============================================
  631.  
  632.     In his famous paper in 1950 C.Shannon describes three methods by which
  633.     a machine could play a strategy game (such chess, checkers, connect four
  634.     and so on...). The C-type method consist in emulating human mind to take
  635.     decisions. In other words the eight mathematical rules Velena uses are
  636.     not based on a search algorithm but on the properties of the game.
  637.     The A-type method instead is based on pure brute force search.
  638.     Just to be fair Velena is not only a Shannon-C type program since it
  639.     also uses some search algoritms to play, anyway the great difference in
  640.     playing capabilities relies just on this knowledged approach, which made
  641.     possible to solve the game.
  642.  
  643.  
  644.     4.13 Why you don't want any money for your program?
  645.     ===================================================
  646.  
  647.     Because in this way each one has the possibility to use this program.
  648.     If I ask for a registration, the program won't spread around very much
  649.     and besides I won't become rich. :-)))
  650.  
  651.  
  652.     4.14 Why isn't there the possibility to change the board size?
  653.     ==============================================================
  654.  
  655.     I think the standard 7x6 board is enough. Other sizes are not very
  656.     interesting. For example it can easily be shown that black can draw
  657.     on any (2n)x6 board. Here's the 6x6 board algorithm black can use to
  658.     draw any game.
  659.  
  660.     step 1: if white plays column A,B,E or F, you play follow up (the same
  661.             column).
  662.  
  663.     step 2: when white plays column C or D for the first time you answer
  664.             in the other column.
  665.  
  666.     step 3: if white plays column C or D again you answer in the same column
  667.             until the column is full. If you cannot answer that way because
  668.             the column is full, then you play the other column.
  669.  
  670.     If black follows these three steps, the game can be drawn, no matter what
  671.     white does.
  672.  
  673.  
  674.     4.15 Which language have you used to write Velena?
  675.     ==================================================
  676.  
  677.     Velena is essentialy written in C and compiled using the Watcom C/C++ V10.0
  678.     The AI engine is completly portable to other 32 bit systems, however a
  679.     small part of the remaining code is written in 80386 assembly in order
  680.     to speed up the graphics.
  681.  
  682.  
  683.     4.16 How long did it take to write Velena?
  684.     ==========================================
  685.  
  686.     I started the whole work only with the theory of L.V.Allis in my hands and
  687.     not a line of code. It took almost ten months of which half were spent in
  688.     calculations to build the opening book data base. One in understanding the
  689.     theory, and the rest in refining the algorithm and designing the graphics.
  690.     The work proceeded on two computers; I used one to develop the program
  691.     and the other to build the database.
  692.  
  693.  
  694.     4.17 Why did you call her Velena?
  695.     =================================
  696.  
  697.     I don't know, I simply liked the name. However it's very similar to
  698.     "Veleno" which in italian means "poison". The intro logo recall this
  699.     sensation too. I have nothing else to say about it. :-(((
  700.  
  701.  
  702.  
  703. ===============================================================================
  704.  
  705.     Further details will be given if requested. Please write in english or
  706.     in italian.
  707.  
  708. ===============================================================================
  709.  
  710.                                                      The author:
  711.                                                      Giuliano Bertoletti
  712.                                                      Via Bocchialini n.6
  713.                                                      Cap. 43100 Parma
  714.                                                      gbe@ce.unipr.it
  715.  
  716.